package com.vast.admin.api.entity;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class SetSignerConfig {

    /**
     * 合同编号
     */
    private String contractId;

    /**
     * 签署者
     */
    private String account;


    /**
     * 手动签署时是否手绘签名。
     * 取值0/1/2。 0点击签名图片不会触发手写面板（禁止手写）。 1点击签名图片能触发手写面板（既可手写也可使用默认签名）。 2强制必须手绘签名（只能手写不允许使用默认签名）。
     */
    private String isDrawSignatureImage = "0";

    /**
     * 是否使用刷脸签 1-刷脸签，使用刷脸校验； 0或其他-非刷脸签，使用短信校验或无校验；
     */
    private String isFaceAuth = "1";

    /**
     * 手动签署用来接收短信验证码的手机号。如手动签需要校验短信验证码则必填此项。 如不填写则手动签时不校验短信验证码。
     */
    private String vcodeMobile;

    /**
     * 指定的默认签署位置，json array格式，每一项为一个json对象。
     * 如用手动签模式则此项必填。
     * x,y坐标使用百分比，取值0.0 - 1.0。
     * 如果不指定此参数，表示由签署者自行在页面上选一个签署位置 参数名 说明 最大长度 y 纵坐标，同上 10 x 横坐标，按页面尺寸的百分比计算，
     * 取值0.0 - 1.0。以左上角为原点  pageNum 页码，从1开始，不能超过合同最大页数
     */
    private List<SignaturePosition> signaturePositions;

    @Data
    public class SignaturePosition {

        /**
         * 页码。1开始，不能超过实际页数
         */
        private String pageNum;

        /**
         * 横坐标，按页面尺寸的百分比计算，取值0.0 - 1.0。以左上角为原点
         */
        private String x;

        /**
         * 纵坐标，同上
         */
        private String y;

        private String fontSize = "10";

        public SignaturePosition() {

        }

        public SignaturePosition(String pageNum, String x, String y) {
            this.pageNum = pageNum;
            this.x = x;
            this.y = y;
        }
    }

    /**
     * 添加签章坐标
     * @param pageNum
     * @param x
     * @param y
     */
    public void add(Integer pageNum, String x, String y) {
        if (signaturePositions == null) {
            signaturePositions = new ArrayList<>();
        }
        signaturePositions.add(new SignaturePosition(pageNum + "", x, y));
    }
}
